﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using FW;
using dbiparser;
using System.Drawing;
//using ExcelLibrary.SpreadSheet;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
using NPOI.SS.Util;
using NPOI.HSSF.Util;
using NPOI.POIFS.FileSystem;
using NPOI.HPSF;
//using Microsoft.Office.Interop.Excel;


namespace kserv
{
    class arquivos
    {
        kservDataContext db;

        private fwlog log;
        private configSRV csrv;
        private string _msg;
        private string erro = "";
        private string uf = "";
        private List<int> servicosOS = new List<int>();
        private int _idemp, _idos;
        private string codigoint = "";
        private string empresaint = "";
        private string filialint = "";
        private string cidade = "";

        private tb_os_resumo osEstat;
        

        public arquivos()
        {
            csrv = new configSRV();
            log = new fwlog(csrv.TEMPDIR + "\\log.dbiKcad.txt", csrv.TIPOLOG);
            _msg = "";
            db = new kservDataContext(csrv.DBINFECONNSTRING);

            
        }

        public void executar()
        {
            listarOSs();
        }

        private void listarOSs()
        { 

            
            var oss = (from tb in db.tb_os
                           where tb.orcamentoOK == true && tb.stts == 3
                           select tb);

            foreach (tb_o o in oss)
            {
                //osEstat = db.tb_os_resumos.Single(t => t.FK_IDos == o.PK_IDos);
                _idemp = (int) o.FK_IDemp;
                _idos = (int) o.PK_IDos;
                var serv = (from tb in db.tb_osXservs where tb.FK_IDos == o.PK_IDos select new { tb.FK_IDserv });
                servicosOS = new List<int>();
                foreach (var sk in serv)
                {
                    servicosOS.Add((int)sk.FK_IDserv);
                }
                if (o.tpps == 3) // PJ
                {
                    //prepararArquivoPJ(o.caminhoOriginal, o.PK_IDos);
                    //consultaArquivoPJ(o.caminhoOriginal + ".2", o.PK_IDos);
                    //reConsultaArquivoPJ(o.caminhoOriginal + ".2", o.PK_IDos);
                    //nRegistrosPara1Registro();
                    exportExcel2();
                }
                else // PF
                {
                    prepararArquivoPF(o.caminhoOriginal, o.PK_IDos);
                    consultaArquivoPF(o.caminhoOriginal + ".2", o.PK_IDos);
                    reConsultaArquivoPF(o.caminhoOriginal + ".2", o.PK_IDos);
                }

                FW.zip z = new FW.zip();
                
                z.zipDir(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/" + o.PK_IDos.ToString() +"_comprov.zip", csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/comprovantes");
                //z.addFile(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/" + "comprov.zip", csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/" + "original.txt.2.3");
                z = null;

                // atualiza dados da OS, finalização do servico
                tb_o upos = db.tb_os.Single(t => t.PK_IDos == o.PK_IDos);
                upos.caminhoFinal = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/" + "resultado.csv";
                //upos.stts = 10;
                upos.status = "Serviços Executado";
                upos.terminoOK = true;
                upos.dt_termino = DateTime.Now;
                db.SubmitChanges();
                upos = null;
            }

            oss = null;

        }

        private void prepararArquivoPJ(string _caminhoArquivo, long _idOS)
        {
            string linha = "";
            string saida = "";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(_caminhoArquivo, enc);
            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                saida = saida + csv2quotecsv(linha) + "\r\n";
            }
            cIO cio = new cIO();
            cio.CriaDir(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/comprovantes");
            cio.apagaArq(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/complex.1");
            cio.apagaArq(_caminhoArquivo + ".2");
            cio.apagaArq(_caminhoArquivo + ".2.3");
            cio.apagaArq(_caminhoArquivo + ".2.4");
            cio.apagaArq(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/relat_completo.xls");
            //cio.apagaArq(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/relat_completo.xls");
            cio.NomeArquivo = _caminhoArquivo + ".2";
            cio.Conteudo = saida;
            cio.GravarArquivo();
            cio = null;
        }
        
        private void prepararArquivoPF(string _caminhoArquivo, long _idOS)
        {
            string linha = "";
            string saida = "";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(_caminhoArquivo, enc);
            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                saida = saida + csv2quotecsv(linha) + "\r\n";
            }
            cIO cio = new cIO();
            cio.CriaDir(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/comprovantes");
            cio.apagaArq(_caminhoArquivo + ".2");
            cio.NomeArquivo = _caminhoArquivo + ".2";
            cio.Conteudo = saida;
            cio.GravarArquivo();
            cio = null;
        }

        private void consultaArquivoPJ(string _caminhoArquivo, long _idOS)
        {
            bool continuar = false;
            string linha = "";
            

            string saida = "";
            string cnpj = "";
            int count = 0;
            cIO cio = new cIO();
            cio.apagaArq(_caminhoArquivo + ".3");
            cio.NomeArquivo = _caminhoArquivo + ".3";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(_caminhoArquivo, enc);
            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                if (count != 0)
                {
                    uf = "";
                    cidade = "";
                    //cio.appendLine("\"OR\";" + linha);
                    cio.appendLine( original2linhaSimple( linha));
                    List<string> campos = linha2List(linha);
                    cnpj = campos[3].Replace(".", "").Replace("/", "").Replace("-", "").Replace(" ", "").Replace("\"", "");
                    codigoint = campos[0].Replace("\"", "");
                    empresaint = campos[1].Replace("\"", "");
                    filialint = campos[2].Replace("\"", "");
                    cnpj = string.Format("{0:00000000000000}", Convert.ToInt64(cnpj));

                    // serviços basico PJ,-->> IBGE, RF e SI
                    if (servicosOS.Any(t => t == 1))
                    {
                        //cio.appendLine(verificaFormatCNPJ(cnpj, out continuar));
                        verificaFormatCNPJ(cnpj, out continuar);
                        if (continuar)
                            cio.appendLine(consultaCNPJRF(cnpj));
                        if (continuar)
                            cio.appendLine(consultaCNPJSI(cnpj));
                        if (continuar)
                            cio.appendLine(consultaCNPJIBGE(cnpj, cidade, uf));
                    }
                    //if (servicosOS.Any(t => t == 2) && continuar)
                        
                    //if (servicosOS.Any(t => t == 3) && continuar)
                        
                }
                else
                {
                    linhaSimple lls = new linhaSimple();
                    cio.appendLine(lls.CABECALHO);
                }
                count++;

            }
            sr.DiscardBufferedData();
            sr.Dispose();
            sr = null;

            //cio.Conteudo = saida;
            //cio.GravarArquivo();
        }

        private void reConsultaArquivoPJ(string _caminhoArquivo, long _idOS)
        {
            bool continuar = false;
            string tipoLinha = "";
            string linha = "";
            string saida = "";
            string cnpj = "";
            int count = 0;
            cIO cio = new cIO();
            cio.apagaArq(_caminhoArquivo + ".4");
            cio.NomeArquivo = _caminhoArquivo + ".4";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(_caminhoArquivo + ".3", enc);
            cidade = "";
            uf = "";
                    
            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                if (count != 0)
                {
                    //cio.appendLine("\"OR\";" + linha);
                    List<string> campos = linha2List(linha);
                    cnpj = campos[4].Replace(".", "").Replace("/", "").Replace("-", "").Replace(" ", "").Replace("\"", "");
                    cnpj = string.Format("{0:00000000000000}", Convert.ToInt64(cnpj));
                    codigoint = campos[1].Replace("\"", "");
                    empresaint = campos[2].Replace("\"", "");
                    filialint = campos[3].Replace("\"", "");
                    tipoLinha = campos[0].ToString();
                    switch (tipoLinha)
                    {
                        case "RF":
                            uf = campos[15].Replace("\"", "");
                            cidade = campos[14].Replace("\"", "");
                            cio.appendLine(linha);
                            break;
                        case "RFerr":
                            cio.appendLine(consultaCNPJRF(cnpj));
                            break;
                        case "SIerr":
                            cio.appendLine(consultaCNPJSI(cnpj));
                            break;
                        case "IBerr":
                            cio.appendLine(consultaCNPJIBGE(cnpj, cidade, uf));
                            break;
                        default:
                            cio.appendLine(linha);
                            break;
                    }
                    //if (servicosOS.Any(t => t == 1))
                    //    cio.appendLine(verificaFormatCNPJ(cnpj, out continuar));
                    //if (servicosOS.Any(t => t == 2) && continuar)
                    //    cio.appendLine(consultaCNPJRF(cnpj));
                    //if (servicosOS.Any(t => t == 3) && continuar)
                    //    cio.appendLine(consultaCNPJSI(cnpj));
                }
                else
                {
                    cio.appendLine(linha);
                }
                count++;

            }
            sr.DiscardBufferedData();
            sr.Dispose();
            sr = null;

            //cio.Conteudo = saida;
            //cio.GravarArquivo();
        }

        private void consultaArquivoPF(string _caminhoArquivo, long _idOS)
        {
            string linha = "";
            string saida = "";
            string cpf = "";
            bool continuar = false;
            int count = 0;
            cIO cio = new cIO();
            cio.apagaArq(_caminhoArquivo + ".3");
            cio.NomeArquivo = _caminhoArquivo + ".3";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(_caminhoArquivo, enc);
            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                if (count != 0)
                {
                    cio.appendLine("\"OR\";" + linha);
                    List<string> campos = linha2List(linha);
                    cpf = campos[3].Replace(".", "").Replace("/", "").Replace("-", "").Replace(" ", "").Replace("\"", "");
                    cpf = string.Format("{0:00000000000}", Convert.ToInt64(cpf));
                    codigoint = campos[0].Replace("\"", "");
                    empresaint = campos[1].Replace("\"", "");
                    filialint = campos[2].Replace("\"", "");
                    if (servicosOS.Any(t => t == 4))
                    {
                        cio.appendLine(verificaFormatCPF(cpf, out continuar));
                        if (continuar) 
                            cio.appendLine(consultaCPFRF(cpf));
                    }
                    //if (servicosOS.Any(t => t == 5) && continuar)
                }
                else
                {
                    cio.appendLine("\"TIPOVERIFICACAO\";" + linha);
                }
                count++;

            }
            sr.DiscardBufferedData();
            sr.Dispose();
            sr = null;

            //cio.Conteudo = saida;
            //cio.GravarArquivo();
        }

        private void reConsultaArquivoPF(string _caminhoArquivo, long _idOS)
        {
            string linha = "";
            string tipoLinha = "";
            string saida = "";
            string cpf = "";
            bool continuar = false;
            int count = 0;
            cIO cio = new cIO();
            cio.apagaArq(_caminhoArquivo + ".4");
            cio.NomeArquivo = _caminhoArquivo + ".4";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(_caminhoArquivo + ".3", enc);
            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                if (count != 0)
                {
                    List<string> campos = linha2List(linha);
                    cpf = campos[4].Replace(".", "").Replace("/", "").Replace("-", "").Replace(" ", "").Replace("\"", "");
                    cpf = string.Format("{0:00000000000}", Convert.ToInt64(cpf));
                    codigoint = campos[1].Replace("\"", "");
                    empresaint = campos[2].Replace("\"", "");
                    filialint = campos[3].Replace("\"", "");
                    tipoLinha = campos[0].ToString();
                    switch (tipoLinha)
                    {
                        case "RFerr":
                            cio.appendLine(consultaCNPJRF(cpf));
                            break;
                       
                        default:
                            cio.appendLine(linha);
                            break;
                    }
                    //cio.appendLine("\"OR\";" + linha);
                    //List<string> campos = linha2List(linha);
                    //if (servicosOS.Any(t => t == 4))
                    //    cio.appendLine(verificaFormatCPF(cpf, out continuar));
                    //if (servicosOS.Any(t => t == 5) && continuar)
                    //    cio.appendLine(consultaCPFRF(cpf));

                }
                else
                {
                    cio.appendLine( linha);
                }
                count++;

            }
            sr.DiscardBufferedData();
            sr.Dispose();
            sr = null;

            //cio.Conteudo = saida;
            //cio.GravarArquivo();
        }

        private string csv2quotecsv(string _linha)
        {
            string ret = "";
            bool achouAspas = false;
            _linha = _linha.Replace("\n", "").Replace("\r", "");
            string campo = "";
            List<string> campos = new List<string>();

            for (int i = 0; i < _linha.Length; i++)
            {
                if (_linha.Substring(i, 1) == ";" && !achouAspas)
                {
                    campos.Add(campo);
                    campo = "";
                }
                else
                {
                    if (_linha.Substring(i, 1) == "\"")
                    {
                        achouAspas = achouAspas ? false : true;
                    }
                    else
                    {
                        campo = campo + _linha.Substring(i, 1);
                    }
                }
            }

            foreach (string s in campos)
            {
                ret = ret + "\"" + s + "\";";
            }


            return ret;
        }

        private List<string> linha2List(string _linha)
        {
            List<string> ls = new List<string>();
            string campo = "";
            bool a1 = false; // primeira aspas
            bool a2 = false; // segunda aspas
            for (int x = 0; x < _linha.Length - 1; x++)
            {
                if (_linha.Substring(x, 1) == "\"")
                {
                    if (a1 && !a2)
                    {
                        a1 = false;
                        a2 = true;
                    }
                    else if (!a1 && a2)
                    {
                        a1 = true;
                        a2 = false;
                    }
                    else
                    {
                        a1 = true;
                        a2 = false;
                    }
                }

                if (a1 && !a2 && _linha.Substring(x, 1) != "\"")
                {
                    campo = campo + _linha.Substring(x, 1);
                }

                if (!a1 && a2 && _linha.Substring(x, 1) == "\"")
                {
                    ls.Add(campo);
                    campo = "";
                }

            }


            return ls;
        }

        private string cortaString(string _original, int _tamanho)
        {
            string ret = "";
            if (_original.Length > _tamanho)
            {
                ret = _original.Substring(0, _tamanho);
            }
            else
            {
                ret = _original;
            }
            return ret;

        }

        private string verificaFormatCNPJ(string _cnpj, out bool _continuar)
        {
            //osEstat.qtdCNPJs++;
            string saida = "\"VF\";";
            bool ret = FW.validador.ValidaCnpj(_cnpj);
            saida = saida + "\"" + codigoint + "\";";
            saida = saida + "\"" + empresaint + "\";";
            saida = saida + "\"" + filialint + "\";";
            saida = saida + "\"" + _cnpj.Replace(".", "").Replace("/", "").Replace("-", "").Replace(" ", "") + "\";";
            saida = saida + "\"" + (ret?"TRUE":"FALSE") +"\";";
            _continuar = ret;
            return saida;
        }

        private string verificaFormatCPF(string _cnpj, out bool _continuar )
        {
            string saida = "\"VF\";";
            bool ret = FW.validador.ValidaCPF(_cnpj);
            saida = saida + "\"" + codigoint + "\";";
            saida = saida + "\"" + empresaint + "\";";
            saida = saida + "\"" + filialint + "\";";
            saida = saida + "\"" + _cnpj.Replace(".", "").Replace("/", "").Replace("-", "").Replace(" ", "") + "\";";
            saida = saida + "\"" + (ret ? "TRUE" : "FALSE") + "\";";
            _continuar = ret;
            return saida;
        }

        private void gravarConprovante(string _tipo, string _html, string _cnpj)
        {
            cIO io = new cIO();
            io.CriaDir(csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/comprovantes");
            string data = FW.utils.GeraTimeStampDT();
            io.NomeArquivo = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/comprovantes/" + _tipo + "_" + _cnpj + "_" + data + ".html";
            io.Conteudo = _html;
            io.GravarArquivo();
            io = null;
        }

        private string original2linhaSimple(string _orig)
        {
            linhaSimple ls = new linhaSimple();
            List<string> campos = linha2List(_orig);
            //CODIGO;EMPRESA;FILIAL;CNPJ;RAZAO;FANTASIA;LOGRADOURO;NUM;COMPLEMENTO;BAIRRO;MUNICIPIO;UF;CEP;IE;IBGE;CCM;CNAE;SUFRAMA
            ls.TIPOVERIFICACAO = "OR";
            ls.CODIGO = campos[0].Replace("\"", "");
            ls.EMPRESA = campos[1].Replace("\"", "");
            ls.FILIAL = campos[2].Replace("\"", "");
            ls.CNPJ = campos[3].Replace("\"", "");
            ls.RAZAO = campos[4].Replace("\"", "");
            ls.FANTASIA = campos[5].Replace("\"", "");
            ls.LOGRADOURO = campos[6].Replace("\"", "");
            ls.NUMERO = campos[7].Replace("\"", "");
            ls.COMPLEMENTO = campos[8].Replace("\"", "");
            ls.BAIRRO = campos[9].Replace("\"", "");
            ls.MUNICIPIO = campos[10].Replace("\"", "");
            ls.UF = campos[11].Replace("\"", "");
            ls.CEP = campos[12].Replace("\"", "");
            ls.IE = campos[13].Replace("\"", "");
            ls.IBGE = campos[14].Replace("\"", "");
            ls.CCM = campos[15].Replace("\"", "");
            ls.CNAE = campos[16].Replace("\"", "");
            ls.SUFRAMA = campos[17].Replace("\"", "");
            return ls.LINHA;
        }

        private string consultaCNPJRF(string _cnpj)
        {
            string ret = "";
            dbiparser.dbiparser dbi = new dbiparser.dbiparser(csrv.WSDBIURL, csrv.WSDBILOGIN, csrv.WSDBISENHA);
            linhaSimple ls = new linhaSimple();
            uf = "";
            try
            {
                dbiparser.dbiparser.RFCNPJ cnpj = (dbiparser.dbiparser.RFCNPJ)dbi.Consulta(3, _cnpj.Replace("\"", ""), "", "", "", "");
                
                if (dbi.ERROCONSULTA == null)
                {
                    gravarConprovante("RF", cnpj.PAGINA, _cnpj);
                    //string linhasaida = "\"RF\";" +
                    //    "\"" + codigoint + "\";" +
                    //    "\"" + empresaint + "\";" +
                    //    "\"" + filialint + "\";" +
            
                    //    "\"" + cnpj.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "") + "\";" +
                    //    "\"" + cnpj.RAZAOSOCIAL.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.NOMEFANTASIA.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.DATAABERTURA.ToString("dd/MM/yyyy") + "\";" +
                    //    "\"" + cnpj.TIPOEMPRESA.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.SITUACAO.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.LOGRADOURO.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.NUMERO.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.COMPLEMENTO.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.BAIRRO.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.CIDADE.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.ESTADO.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.CEP.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.CODIGOAE.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.DESCRICAOAE.Replace("\"", "") + "\";" +
                    //    "\"" + cnpj.CODIGONJ.Replace("\"", "") + "\"" +
                    //    "\"" + cnpj.DESCRICAONJ.Replace("\"", "") + "\";";

                    
                    ls.DESCRICNAE = cnpj.DESCRICAOAE.Replace("\"", "");
                    ls.RFCODIGONJ = cnpj.CODIGONJ.Replace("\"", "");
                    ls.RFDESCRINJ = cnpj.DESCRICAONJ.Replace("\"", "");
                    ls.RFTIPOEMPRESA = cnpj.TIPOEMPRESA.Replace("\"", "");
                    ls.BAIRRO = cnpj.BAIRRO.Replace("\"", "");
                    ls.CNAE = cnpj.CODIGOAE.Replace("\"", "");
                    ls.CNPJ = cnpj.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("\"", "");
                    ls.CODIGO = codigoint.Replace("\"", "");
                    ls.COMPLEMENTO = cnpj.COMPLEMENTO.Replace("\"", "");
                    ls.EMPRESA = empresaint.Replace("\"", "");
                    ls.FANTASIA = cnpj.NOMEFANTASIA.Replace("\"", "");
                    ls.FILIAL = filialint.Replace("\"", "");
                    ls.LOGRADOURO = cnpj.LOGRADOURO.Replace("\"", "");
                    ls.MUNICIPIO = cnpj.CIDADE.Replace("\"", "");
                    ls.CEP = cnpj.CEP.Replace("\"", "");

                    ls.NUMERO = cnpj.NUMERO.Replace("\"", "");
                    ls.RAZAO = cnpj.RAZAOSOCIAL.Replace("\"", "");
                    ls.RFDATAABERTURA = cnpj.DATAABERTURA.ToString("dd/MM/yyyy");
                    ls.SITUACAOCNPJ = cnpj.SITUACAO.Replace("\"", "");
                    ls.TIPOVERIFICACAO = "RF";
                    ls.UF = cnpj.ESTADO.Replace("\"", "");
                    ls.RFDATACONSULTA = cnpj.DATACONSULTA.ToString("dd/MM/yyyy");
                    ls.RFDATASITUACAO = cnpj.DATASITUACAO.ToString("dd/MM/yyyy");
                    ls.RFDATASITUACAOESPECIAL = cnpj.DATASITUACAOESPECIAL.ToString("dd/MM/yyyy");
                    ls.RFHORACONSULTA = cnpj.HORACONSULTA.Replace("\"", "");
                    ls.RFMOTIVOSITUACAO = cnpj.MOTIVOSITUACAO.Replace("\"", "");
                    ls.RFSITUACAOESPECIAL = cnpj.SITUACAOESPECIAL.Replace("\"", "");

                    ret = ls.LINHA;
                     
                    //if (cnpj.SITUACAO.ToUpper() == "ATIVA" || cnpj.SITUACAO.ToUpper() == "ATIVO") RFativ = 1;
                    erro = "";
                    uf = cnpj.ESTADO.Replace("\"", "");
                    cidade = cnpj.CIDADE.Replace("\"", "");

                }
                else
                {
                    if (dbi.ERROCONSULTA.CODERRO == "2")
                    {
                        erro = "";
                        cidade = "";
                        uf = "";
                        ls.TIPOVERIFICACAO = "RF";
                        ls.CODIGO = codigoint;
                        ls.EMPRESA = empresaint;
                        ls.FILIAL = filialint;
                        ls.CNPJ = _cnpj;
                        ls.ERROCOD = dbi.ERROCONSULTA.CODERRO;
                        ls.ERRODESCRI = dbi.ERROCONSULTA.ERRODESCRI;
                        ret = ls.LINHA;
                            //string.Format("\"RF\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro Receita\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", "") , dbi.ERROCONSULTA.CODERRO , dbi.ERROCONSULTA.ERRODESCRI);
                        //ret = ("\"RF\";\"Erro receita\";\"\";\"\";\"" + _cnpj.Replace("\"", "") + "\";\"" + dbi.ERROCONSULTA.CODERRO + "\";\"" + dbi.ERROCONSULTA.ERRODESCRI + "\";");
                    }
                    else
                    {
                        erro = "1";
                        uf = "";
                        cidade = "";
                        ls.TIPOVERIFICACAO = "RFerr";
                        ls.CODIGO = codigoint;
                        ls.EMPRESA = empresaint;
                        ls.FILIAL = filialint;
                        ls.CNPJ = _cnpj;
                        ls.ERROCOD = dbi.ERROCONSULTA.CODERRO;
                        ls.ERRODESCRI = dbi.ERROCONSULTA.ERRODESCRI;
                        ret = ls.LINHA;
                        //ret = string.Format("\"RFerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro Receita\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), dbi.ERROCONSULTA.CODERRO, dbi.ERROCONSULTA.ERRODESCRI);
                        //ret = ("\"RFerr\";\"Erro receita\";\"\";\"\";\"" + _cnpj.Replace("\"", "") + "\";\"" + dbi.ERROCONSULTA.CODERRO + "\";\"" + dbi.ERROCONSULTA.ERRODESCRI + "\";");
                    }
                }

            }
            catch (Exception ex)
            {
                erro = "2";
                uf = "";
                cidade = "";
                ls.TIPOVERIFICACAO = "RFerr";
                ls.CODIGO = codigoint;
                ls.EMPRESA = empresaint;
                ls.FILIAL = filialint;
                ls.CNPJ = _cnpj;
                ls.ERROCOD = "Erro WS DBI";
                ls.ERRODESCRI = "Consultar LOG";
                ret = ls.LINHA;
                //ret = string.Format("\"RFerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro WS DBI\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), "", "Consultar LOG");
                //ret = "\"RFerr\";\"Erro ws DBI\";\"\";\"\";\"" + _cnpj + "\";\"Consultar LOG\";";
                log.erro("consultaCNPJRF", _cnpj, ex.Message);
            }

            dbi = null;
            return ret;
        }

        private string consultaCNPJIBGE(string _cnpj, string _cidade, string _uf)
        {
            string ret = "";
            dbiparser.dbiparser dbi = new dbiparser.dbiparser(csrv.WSDBIURL, csrv.WSDBILOGIN, csrv.WSDBISENHA);
            linhaSimple ls = new linhaSimple();
            uf = "";
            try
            {
                dbiparser.dbiparser.MUNICIPIOIBGE ibge = (dbiparser.dbiparser.MUNICIPIOIBGE)dbi.Consulta(13, _cidade, _uf, "", "", "");

                if (dbi.ERROCONSULTA == null)
                {
                    //gravarConprovante("RF", ibge.PAGINA, _cnpj);
                    //string linhasaida = "\"IB\";" +
                    //    "\"" + codigoint + "\";" +
                    //    "\"" + empresaint + "\";" +
                    //    "\"" + filialint + "\";" +

                    //    "\"" + ibge.CODIGOIBGE.Replace("\"", "") + "\";" +
                    //    "\"" + ibge.MUNICIPIO.Replace("\"", "") + "\";" +
                    //    "\"" + ibge.ESTADO.Replace("\"", "") + "\";" ;
                    //ret = linhasaida;

                    ls.TIPOVERIFICACAO = "IB";
                    ls.CODIGO = codigoint;
                    ls.EMPRESA = empresaint;
                    ls.FILIAL = filialint;
                    ls.IBGE = ibge.CODIGOIBGE.Replace("\"", "");
                    ls.CNPJ = _cnpj;
                    ls.MUNICIPIO = ibge.MUNICIPIO.Replace("\"", "");
                    ls.UF = ibge.ESTADO.Replace("\"", "") ;
                    ret = ls.LINHA;

                    //if (cnpj.SITUACAO.ToUpper() == "ATIVA" || cnpj.SITUACAO.ToUpper() == "ATIVO") RFativ = 1;
                    erro = "";
                    //uf = cnpj.ESTADO.Replace("\"", "");
                }
                else
                {
                        erro = "13-1";
                        uf = "";
                        ls.TIPOVERIFICACAO = "IBerr";
                        ls.CODIGO = codigoint;
                        ls.EMPRESA = empresaint;
                        ls.FILIAL = filialint;
                        ls.CNPJ = _cnpj;
                        ls.MUNICIPIO = cidade;
                        ls.UF = uf;
                        ls.ERROCOD = dbi.ERROCONSULTA.CODERRO;
                        ls.ERRODESCRI = dbi.ERROCONSULTA.ERRODESCRI;
                        ret = ls.LINHA;
                        //ret = string.Format("\"IBerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro IBGE\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), dbi.ERROCONSULTA.CODERRO, dbi.ERROCONSULTA.ERRODESCRI);
                        //ret = ("\"RFerr\";\"Erro receita\";\"\";\"\";\"" + _cnpj.Replace("\"", "") + "\";\"" + dbi.ERROCONSULTA.CODERRO + "\";\"" + dbi.ERROCONSULTA.ERRODESCRI + "\";");
                }

            }
            catch (Exception ex)
            {
                erro = "13-2";
                uf = "";
                ls.TIPOVERIFICACAO = "IBerr";
                ls.CODIGO = codigoint;
                ls.EMPRESA = empresaint;
                ls.FILIAL = filialint;
                ls.CNPJ = _cnpj;
                ls.MUNICIPIO = cidade;
                ls.UF = uf;
                ls.ERROCOD = "Erro WS DBI IBGH";
                ls.ERRODESCRI = "Consultar LOG";
                ret = ls.LINHA;
                //ret = string.Format("\"IBerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro WS DBI IBGE\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), "", "Consultar LOG");
                //ret = "\"RFerr\";\"Erro ws DBI\";\"\";\"\";\"" + _cnpj + "\";\"Consultar LOG\";";
                log.erro("consultaIBGERF", _cnpj, ex.Message);
            }

            dbi = null;
            return ret;
        }

        private string consultaCNPJSI(string _cnpj)
        {
            string ret = "";
            dbiparser.dbiparser dbi = new dbiparser.dbiparser(csrv.WSDBIURL, csrv.WSDBILOGIN, csrv.WSDBISENHA);
            dbi.USARLISTASINTEGRA = true;
            linhaSimple ls = new linhaSimple();

            try
            {
                dbiparser.dbiparser.ListaSINTEGRA lsin = (dbiparser.dbiparser.ListaSINTEGRA)dbi.Consulta(1, _cnpj.Replace(".", "").Replace("-", "").Replace("/", ""), uf, "", "", "");
                
                if (dbi.ERROCONSULTA == null)
                {
                    int count = 0;
                    string saidalinha = "";
                    foreach (dbiparser.dbiparser.SINTEGRA sin in lsin.LISTASI)
                    {
                        gravarConprovante("SI" + count.ToString() , sin.PAGINA, _cnpj);
                        //saidalinha = saidalinha + "\"SI\";" +
                        //"\"" + codigoint + "\";" +
                        //"\"" + empresaint + "\";" +
                        //"\"" + filialint + "\";" +
                        //"\"" + sin.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("\"", "") + "\";"
                        //+ "\"" + sin.IE.Replace("\"", "") + "\";"
                        //+ "\"" + sin.RAZAOSOCIAL.Replace("\"", "") + "\";"
                        //+ "\"" + sin.NOMEFANTASIA.Replace("\"", "") + "\";"
                        //+ "\"" + sin.REGIMEAPURACAO.Replace("\"", "") + "\";"
                        //+ "\"" + sin.REGULARIDADEFISCAL.Replace("\"", "") + "\";"
                        //+ "\"" + sin.EMAIL.Replace("\"", "") + "\";"
                        //+ "\"" + sin.DATAINCLUSAO.ToString("dd/MM/yyyy") + "\";"
                        //+ "\"" + sin.SITUACAO.Replace("\"", "") + "\";"
                        //+ "\"" + sin.LOGRADOURO.Replace("\"", "") + "\";"
                        //+ "\"" + sin.NUMERO.Replace("\"", "") + "\";"
                        //+ "\"" + sin.COMPLEMENTO.Replace("\"", "") + "\";"
                        //+ "\"" + sin.BAIRRO.Replace("\"", "") + "\";"
                        //+ "\"" + sin.CIDADE.Replace("\"", "") + "\";"
                        //+ "\"" + sin.ESTADO.Replace("\"", "") + "\";"
                        //+ "\"" + sin.CEP.Replace("\"", "")  + "\";\r\n"
                        //;
                        ls.TIPOVERIFICACAO = "SI";
                        ls.CODIGO = codigoint;
                        ls.EMPRESA = empresaint;
                        ls.FILIAL = filialint;
                        ls.CNPJ = sin.CNPJ.Replace(".", "").Replace("/", "").Replace("-", "").Replace("\"", "");
                        ls.IE = sin.IE.Replace("\"", "");
                        ls.RAZAO = sin.RAZAOSOCIAL.Replace("\"", "");
                        ls.FANTASIA = sin.NOMEFANTASIA.Replace("\"", "");
                        ls.SIREGIMEAPURACAO = sin.REGIMEAPURACAO.Replace("\"", "");
                        ls.SIREGULARIDADEFISCAL = sin.REGULARIDADEFISCAL.Replace("\"", "");
                        ls.SIEMAIL = sin.EMAIL.Replace("\"", "");
                        ls.SIDATAINCULSAO = sin.DATAINCLUSAO.ToString("dd/MM/yyyy");
                        ls.SITUACAOIE = sin.SITUACAO.Replace("\"", "");
                        ls.LOGRADOURO = sin.LOGRADOURO.Replace("\"", "");
                        ls.NUMERO = sin.NUMERO.Replace("\"", "");
                        ls.COMPLEMENTO = sin.COMPLEMENTO.Replace("\"", "");
                        ls.BAIRRO = sin.BAIRRO.Replace("\"", "");
                        ls.MUNICIPIO = sin.CIDADE.Replace("\"", "");
                        ls.UF = sin.ESTADO.Replace("\"", "");
                        ls.CEP = sin.CEP.Replace("\"", "");
                        ls.SIDATABAIXA = sin.DATABAIXA.ToString("dd/MM/yyyy");
                        ls.SIDATACONSULTA = sin.DATACONSULTA.ToString("dd/MM/yyyy");
                        ls.SIMOTIVOBAIXA = sin.MOTIVOBAIXA.Replace("\"", "");
                        ls.SINUMEROCONSULTA = sin.NUMEROCONSULTA.Replace("\"", "");
                        saidalinha = saidalinha + ls.LINHA + "\r\n";
                        count++;
                    }
                    //if (sin.SITUACAO.ToUpper() == "HABILITADO" || sin.SITUACAO.ToUpper() == "HABILITADA" || sin.SITUACAO.ToUpper() == "ATIVA" || sin.SITUACAO.ToUpper() == "ATIVO") SIativ = 1;
                    saidalinha = saidalinha.Substring(0, saidalinha.LastIndexOf('\r'));
                    ret = saidalinha;
                    erro = "";

                }
                else
                {
                    if (dbi.ERROCONSULTA.CODERRO == "19")// erro = 19 = Contribuinte não sujeito ao ICMS.
                    {
                        erro = "19";
                        //SIativ = 1;
                        //uf = "";
                        ls.TIPOVERIFICACAO = "SI";
                        ls.SITUACAOIE = "ISENTO";
                        ls.CODIGO = codigoint;
                        ls.EMPRESA = empresaint;
                        ls.FILIAL = filialint;
                        ls.CNPJ = _cnpj;
                        ls.UF = uf;
                        ls.ERRODESCRI = "Contribuinte não sujeito ao ICMS";
                        ret = ls.LINHA;
                        //ret = string.Format("\"SI\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"ISENTO\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), "", "Contribuinte não sujeito ao ICMS");
                        //ret = "\"SI\";" +
                          //"\"" + codigoint + "\";" +
                          //"\"" + empresaint + "\";" +
                          //"\"" + filialint + "\";" +
                          //"\"" + _cnpj.Replace(".", "").Replace("/", "").Replace("-", "").Replace("\"", "")
                          //+ "\";" + "\"ISENTO\";"
                          //+ "\"Contribuinte não sujeito ao ICMS\";";
                    }
                    else if (dbi.ERROCONSULTA.CODERRO == "30")// erro = 30 = CNPJ não cadastrado no estado.
                    {
                        erro = "30";
                        //SIativ = 0;
                        //uf = "";
                        ls.TIPOVERIFICACAO = "SI";
                        ls.SITUACAOIE = "NAO CADASTRADO";
                        ls.CODIGO = codigoint;
                        ls.EMPRESA = empresaint;
                        ls.FILIAL = filialint;
                        ls.CNPJ = _cnpj;
                        ls.UF = uf;
                        ls.ERRODESCRI = "CNPJ não cadastrado no estado";
                        ret = ls.LINHA;
                       //ret = string.Format("\"SI\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"NAO CADASTRADO\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), "", "CNPJ não cadastrado no estado");
                        //ret = "\"SI\";" +
                        //  "\"" + codigoint + "\";" +
                        //  "\"" + empresaint + "\";" +
                        //  "\"" + filialint + "\";" +
                        //  "\"" + _cnpj.Replace(".", "").Replace("/", "").Replace("-", "").Replace("\"", "")
                        //  + "\";" + "\"NAO CADASTRADO\";"
                        //  + "\"CNPJ não cadastrado no estado\";";
                    }
                    else
                    {
                        erro = "3";
                        ls.TIPOVERIFICACAO = "SIerr";
                        //ls.SITUACAOIE = "NAO CADASTRADO";
                        ls.CODIGO = codigoint;
                        ls.EMPRESA = empresaint;
                        ls.FILIAL = filialint;
                        ls.CNPJ = _cnpj;
                        ls.UF = uf;
                        ls.ERROCOD = dbi.ERROCONSULTA.CODERRO;
                        ls.ERRODESCRI = dbi.ERROCONSULTA.ERRODESCRI;
                        ret = ls.LINHA;
                        //ret = string.Format("\"SIerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro Sintegra\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), dbi.ERROCONSULTA.CODERRO, dbi.ERROCONSULTA.ERRODESCRI);
                        //ret = ("\"SIerr\";\"Erro receita\";\"\";\"\";\"" + _cnpj.Replace("\"", "") + "\";\"" + uf + "\";\"" + dbi.ERROCONSULTA.CODERRO + "\";\"" + dbi.ERROCONSULTA.ERRODESCRI + "\";");
                        //uf = "";
                    }
                }

            }
            catch (Exception ex)
            {
                erro = "4";
                ls.TIPOVERIFICACAO = "SIerr";
                //ls.SITUACAOIE = "NAO CADASTRADO";
                ls.CODIGO = codigoint;
                ls.EMPRESA = empresaint;
                ls.FILIAL = filialint;
                ls.CNPJ = _cnpj;
                ls.UF = uf;
                ls.ERROCOD = "Erro WS DBI SI";
                ls.ERRODESCRI = "Consultar LOG";
                ret = ls.LINHA;
                //ret = string.Format("\"SIerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro WS DBI\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cnpj.Replace("\"", ""), "", "Consultar LOG");
                //ret = ("\"SIerr\";\"Erro ws DBI\";\"\";\"\";\"" + _cnpj.Replace("\"", "") + "\";\"" + uf + "\";\"Consultar LOG\";");
                //uf = "";
                log.erro("consultaCNPJSI", _cnpj, ex.Message);
            }

            dbi = null;
            return ret;
        }

        private string consultaCPFRF(string _cpf)
        {
            //RFativ = 0;
            erro = "";
            string ret = "";
            dbiparser.dbiparser dbi = new dbiparser.dbiparser(csrv.WSDBIURL, csrv.WSDBILOGIN, csrv.WSDBISENHA);
            
            try
            {
                dbiparser.dbiparser.RFCPF cpf = (dbiparser.dbiparser.RFCPF)dbi.Consulta(4, _cpf.Replace("\"", ""), "", "", "", "");
                
                if (dbi.ERROCONSULTA == null)
                {
                    gravarConprovante("RF", cpf.PAGINA, _cpf);
                    string linhasaida = "\"RF\";" +
                        "\"" + codigoint + "\";" +
                        "\"" + empresaint + "\";" +
                        "\"" + filialint + "\";" +
                        "\"" + cpf.CPF.Replace(".", "").Replace("/", "").Replace("-", "") + "\";" +
                        "\"" + cpf.NOME.Replace("\"", "") + "\";" +
                        "\"" + cpf.SITUACAOCADASTRAL.Replace("\"", "") + "\";";
                    ret = (linhasaida);

                    //if (cpf.SITUACAOCADASTRAL.ToUpper() == "REGULAR")
                    //    RFativ = 1;
                    erro = "";
                }
                else
                {
                    
                    if (dbi.ERROCONSULTA.CODERRO == "5")
                    {
                        erro = "";

                        ret = string.Format("\"RF\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro Receita CPF\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cpf.Replace("\"", ""), dbi.ERROCONSULTA.CODERRO, dbi.ERROCONSULTA.ERRODESCRI);
                        //ret = ("\"RF\";\"Erro receita\";\"\";\"\";\"" + _cpf.Replace("\"", "") + "\";\"" + dbi.ERROCONSULTA.CODERRO + "\";\"" + dbi.ERROCONSULTA.ERRODESCRI + "\";");
                    }
                    else
                    {
                        erro = "5";
                        ret = string.Format("\"RFerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro Receita CPF\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cpf.Replace("\"", ""), dbi.ERROCONSULTA.CODERRO, dbi.ERROCONSULTA.ERRODESCRI);
                        //ret = ("\"RFerr\";\"Erro receita\";\"\";\"\";\"" + _cpf.Replace("\"", "") + "\";\"" + dbi.ERROCONSULTA.CODERRO + "\";\"" + dbi.ERROCONSULTA.ERRODESCRI + "\";");
                    }
                }

            }
            catch (Exception ex)
            {
                erro = "6";
                ret = string.Format("\"RFerr\";\"{0}\";\"{1}\";\"{2}\";\"{3}\";\"Erro WS DBI\";\"{4}\";\"{5}\";", codigoint, empresaint, filialint, _cpf.Replace("\"", ""), "", "Consultar LOG");
                //ret = "\"RFerr\";\"Erro ws DBI\";\"\";\"\";\"" + _cpf + "\";\"Consultar LOG\";";
                log.erro("consultaCNPJRF", _cpf, ex.Message);
                uf = "";
                
            }

            dbi = null;
            return ret;
        }

        private void nRegistrosPara1Registro()
        {
            //osEstat = db.tb_os_resumos.Single(t => t.FK_IDos == _idos);
            //string csvfile = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/original.txt.2.4";
            //cIO cio = new cIO();
            //cio.NomeArquivo = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/complex.1";
            //int count = 0;
            //string linhasaida = "";
            //string linha = "";
            //linhaComplex lc = new linhaComplex();
            //linhaSimple ls = new linhaSimple();
            //bool novalinha = false;
            //Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            //StreamReader sr = new StreamReader(csvfile, enc);
            //while (sr.Peek() >= 0)
            //{
            //    linha = sr.ReadLine();
            //    //cio.appendLine("\"OR\";" + linha);
            //    List<string> campos = linha2List(linha);

            //    if (count != 0)
            //    {

            //        switch (campos[0])
            //        {
            //            case "RFerr":
            //                osEstat.qtdCNPJerro++;
            //                break;
            //            case "SIerr":
            //                osEstat.qtdSIerro++;
            //                break;
            //            case "IBerr":
            //                break;
            //            case "OR":
            //                osEstat.qtdregistros++;
                            
            //                if (count != 1)
            //                    cio.appendLine(lc.LINHA);
            //                lc = new linhaComplex();
            //                ls = new linhaSimple();
            //                ls.autoCarga(campos);
            //                lc.CODIGO = ls.CODIGO;
            //                lc.EMPRESA = ls.EMPRESA;
            //                lc.FILIAL = ls.FILIAL;
            //                lc.CNPJ = ls.CNPJ;
            //                lc.RAZAO = ls.RAZAO;
            //                lc.FANTASIA = ls.FANTASIA;
            //                lc.LOGRADOURO = ls.LOGRADOURO;
            //                lc.NUM = ls.NUMERO;
            //                lc.COMPLEMENTO = ls.COMPLEMENTO;
            //                lc.BAIRRO = ls.BAIRRO;
            //                lc.MUNICIPIO = ls.MUNICIPIO;
            //                lc.IBGE = ls.IBGE;
            //                lc.UF = ls.UF;
            //                lc.CEP = ls.CEP;
            //                lc.CNAE = ls.CNAE;
            //                lc.CCM = ls.CCM;
            //                lc.IE = ls.IE;
            //                lc.SUFRAMA = ls.SUFRAMA;
            //                break;
            //            case "RF":
            //                osEstat.qtdCNPJs++;
            //                ls = new linhaSimple();
            //                ls.autoCarga(campos);
            //                lc.RFBAIRRO = ls.BAIRRO;
            //                lc.RFCEP = ls.CEP;
            //                lc.RFCIDADE = ls.MUNICIPIO;
            //                lc.RFCNPJ = ls.CNPJ;
            //                lc.RFCODIGOAE = ls.CNAE;
            //                lc.RFCODIGONJ = ls.RFCODIGONJ;
            //                lc.RFCOMPLEMENTO = ls.COMPLEMENTO;
            //                lc.RFDATAABERTURA = ls.RFDATAABERTURA;
            //                lc.RFDATACONSULTA = ls.RFDATACONSULTA;
            //                lc.RFDATASITUACAO = ls.RFDATASITUACAO;
            //                lc.RFDATASITUACAOESPECIAL = ls.RFDATASITUACAOESPECIAL;
            //                lc.RFDESCRICAOAE = ls.DESCRICNAE;
            //                lc.RFDESCRICAONJ = ls.RFDESCRINJ;
            //                lc.RFESTADO = ls.UF;
            //                lc.RFHORACONSULTA = ls.RFHORACONSULTA;
            //                lc.RFLOGRADOURO = ls.LOGRADOURO;
            //                lc.RFMOTIVOSITUACAO = ls.RFMOTIVOSITUACAO;
            //                lc.RFNOMEFANTASIA = ls.FANTASIA;
            //                lc.RFNUMERO = ls.NUMERO;
            //                lc.RFRAZAOSOCIAL = ls.RAZAO;
            //                lc.RFSITUACAO = ls.SITUACAOCNPJ;
            //                lc.RFSITUACAOESPECIAL = ls.RFSITUACAOESPECIAL;
            //                lc.RFTIPOEMPRESA = ls.RFTIPOEMPRESA;

            //                switch (ls.SITUACAOCNPJ.ToUpper())
            //                { 
            //                    case "ATIVA":
            //                        osEstat.qtdCNPJativo++;
            //                        break;
            //                    case "SUSPENSA":
            //                        osEstat.qtdCNPJsuspensa++;
            //                        break;
            //                    case "INAPTA":
            //                        osEstat.qtdCNPJinapta++;
            //                        break;
            //                    case "BAIXADA":
            //                        osEstat.qtdCNPJbaixada++;
            //                        break;
            //                    case "NULA":
            //                        osEstat.qtdCNPJnula++;
            //                        break;
	
            //                }

            //                break;
            //            case "IB":
            //                ls = new linhaSimple();
            //                ls.autoCarga(campos);
            //                lc.CODIBGE = ls.IBGE;
            //                break;

            //            case "SI":
            //                ls = new linhaSimple();
            //                ls.autoCarga(campos);

            //                if (lc.SIIE == null || lc.SIIE == "")
            //                {
            //                    osEstat.qtdSIs++;
                            
            //                    lc.SIBAIRRO = ls.BAIRRO;
            //                    lc.SICEP = ls.CEP;
            //                    lc.SICIDADE = ls.MUNICIPIO;
            //                    lc.SICNPJ = ls.CNPJ;
            //                    lc.SICOMPLEMENTO = ls.COMPLEMENTO;
            //                    lc.SIDATABAIXA = ls.SIDATABAIXA;
            //                    lc.SIDATACONSULTA = ls.SIDATACONSULTA;
            //                    lc.SIDATAINCLUSAO = ls.SIDATAINCULSAO;
            //                    lc.SIEMAIL = ls.SIEMAIL;
            //                    lc.SIESTADO = ls.UF;
            //                    lc.SIIE = ls.IE;
            //                    lc.SILOGRADOURO = ls.LOGRADOURO;
            //                    lc.SIMOTIVOBAIXA = ls.SIMOTIVOBAIXA;
            //                    lc.SINOMEFANTASIA = ls.FANTASIA;
            //                    lc.SINUMERO = ls.NUMERO;
            //                    lc.SINUMEROCONSULTA = ls.SINUMEROCONSULTA;
            //                    lc.SIRAZAOSOCIAL = ls.RAZAO;
            //                    lc.SIREGIMEAPURACAO = ls.SIREGIMEAPURACAO;
            //                    lc.SIREGULARIDADEFISCAL = ls.SIREGULARIDADEFISCAL;
            //                    lc.SISITUACAO = ls.SITUACAOIE;

            //                    switch (ls.SITUACAOCNPJ.ToUpper())
            //                    {
            //                        case "HABILITADO":
            //                            osEstat.qtdSIhabilitado++;
            //                            break;
            //                        case "ISENTO":
            //                            osEstat.qtdSIinexistente++;
            //                            break;
            //                        default:
            //                            osEstat.qtdSIinabilitado++;
            //                            break;

            //                    }


            //                }
            //                else
            //                {
            //                    osEstat.qtdSImultiplos++;
            //                    lc.SIBAIRRO = lc.SIBAIRRO + ";" + ls.BAIRRO;
            //                    lc.SICEP = lc.SICEP + ";" + ls.CEP;
            //                    lc.SICIDADE = lc.SICIDADE + ";" + ls.MUNICIPIO;
            //                    lc.SICNPJ = lc.SICNPJ + ";" + ls.CNPJ;
            //                    lc.SICOMPLEMENTO = lc.SICOMPLEMENTO + ";" + ls.COMPLEMENTO;
            //                    lc.SIDATABAIXA = lc.SIDATABAIXA + ";" + ls.SIDATABAIXA;
            //                    lc.SIDATACONSULTA = lc.SIDATACONSULTA + ";" + ls.SIDATACONSULTA;
            //                    lc.SIDATAINCLUSAO = lc.SIDATAINCLUSAO + ";" + ls.SIDATAINCULSAO;
            //                    lc.SIEMAIL = lc.SIEMAIL + ";" + ls.SIEMAIL;
            //                    lc.SIESTADO = lc.SIESTADO + ";" + ls.UF;
            //                    lc.SIIE = lc.SIIE + ";" + ls.IE;
            //                    lc.SILOGRADOURO = lc.SILOGRADOURO + ";" + ls.LOGRADOURO;
            //                    lc.SIMOTIVOBAIXA = lc.SIMOTIVOBAIXA + ";" + ls.SIMOTIVOBAIXA;
            //                    lc.SINOMEFANTASIA = lc.SINOMEFANTASIA + ";" + ls.FANTASIA;
            //                    lc.SINUMERO = lc.SINUMERO + ";" + ls.NUMERO;
            //                    lc.SINUMEROCONSULTA = lc.SINUMEROCONSULTA + ";" + ls.SINUMEROCONSULTA;
            //                    lc.SIRAZAOSOCIAL = lc.SIRAZAOSOCIAL + ";" + ls.RAZAO;
            //                    lc.SIREGIMEAPURACAO = lc.SIREGIMEAPURACAO + ";" + ls.SIREGIMEAPURACAO;
            //                    lc.SIREGULARIDADEFISCAL = lc.SIREGULARIDADEFISCAL + ";" + ls.SIREGULARIDADEFISCAL;
            //                    lc.SISITUACAO = lc.SISITUACAO + ";" + ls.SITUACAOIE;

            //                    switch (ls.SITUACAOCNPJ.ToUpper())
            //                    {
            //                        case "HABILITADO":
            //                            osEstat.qtdSIhabilitado++;
            //                            break;
            //                        case "ISENTO":
            //                            osEstat.qtdSIinexistente++;
            //                            break;
            //                        default:
            //                            osEstat.qtdSIinabilitado++;
            //                            break;

            //                    }
            //                }

                            
            //                break;
            //        }
            //    }
            //    else
            //    {
            //        cio.appendLine(lc.CABECALHO);
            //    }

            //    //int cols = 0;
            //    //var row = ws.CreateRow(count);
            //    //foreach (string s in campos)
            //    //{
                    
            //    //    cols++;
            //    //}

            //    count++;

            //}
            //cio.appendLine(lc.LINHA);
            ////wb.Worksheets.Add(ws);
            ////wb.Save(xlsfile);
            //sr.DiscardBufferedData();
            //sr.Dispose();
            //sr = null;
        }

        private void exportExcel()
        {
            string xlsfile = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/relat_comprov.xls";
            string csvfile = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/original.txt.2.3";
            //Workbook wb = new Workbook();
            // Worksheet ws = new Worksheet("Resultado");

            FileStream msResult = new FileStream(xlsfile, FileMode.Create);

            HSSFWorkbook wb = new HSSFWorkbook();
            Sheet ws = wb.CreateSheet("resultado");

            int count = 0;
            string linha = "";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(csvfile, enc);

            //CellStyle cs = new CellStyle();
            //cs.BackColor = Color.Blue;

            var style1 = wb.CreateCellStyle();

            style1.FillBackgroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillForegroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillPattern = FillPatternType.SOLID_FOREGROUND;


            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                //cio.appendLine("\"OR\";" + linha);
                List<string> campos = linha2List(linha);
                int cols = 0;
                var row = ws.CreateRow(count);
                foreach (string s in campos)
                {
                    row.CreateCell(cols).SetCellValue(s);
                    row.GetCell(cols).CellStyle = style1;
                    //ws.Cells[count, cols] = new Cell(s);
                    //ws.Cells[count, cols].Style = cs;

                    cols++;
                }

                count++;

            }
            wb.Write(msResult);
            msResult.Close();
            //wb.Worksheets.Add(ws);
            //wb.Save(xlsfile);
            sr.DiscardBufferedData();
            sr.Dispose();
            sr = null;


        }

        private void exportExcel2()
        {
            string xlsfile = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/relat_completo.xls";
            string csvfile = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/original.txt.2.4";
            cIO cio = new cIO();
            cio.copyFile(csrv.TEMPDIR + "/templatePJ.xls", xlsfile);

            FileStream fs = new FileStream(csrv.TEMPDIR + "/templatePJ.xls", FileMode.Open, FileAccess.Read);
            FileStream msResult = new FileStream(xlsfile, FileMode.Create);
            
            HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);

            
            // consultas
            var sheet = templateWorkbook.GetSheet("Consultas");
            int count = 0;
            string linha = "";
            Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            StreamReader sr = new StreamReader(csvfile, enc);

            var style1 = templateWorkbook.CreateCellStyle();

            style1.FillBackgroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillForegroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillPattern = FillPatternType.SOLID_FOREGROUND;
            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                //cio.appendLine("\"OR\";" + linha);
                List<string> campos = linha2List(linha);
                int cols = 0;
                //
                if (count > 0)
                {
                    var row = sheet.CreateRow(count);
                    foreach (string s in campos)
                    {
                        //sheet.GetRow(count + 1).GetCell(cols).SetCellValue(s);
                        row.CreateCell(cols).SetCellValue(s);
                        row.GetCell(cols).CellStyle = style1;
                        //ws.Cells[count, cols] = new Cell(s);
                        //ws.Cells[count, cols].Style = cs;

                        cols++;
                    }
                }
                count++;

            }

            //Original
            sheet = templateWorkbook.GetSheet("original");
            csvfile = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/original.txt.2";

            count = 0;
            linha = "";
            //Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            sr = new StreamReader(csvfile, enc);

            style1 = templateWorkbook.CreateCellStyle();

            style1.FillBackgroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillForegroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillPattern = FillPatternType.SOLID_FOREGROUND;


            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                //cio.appendLine("\"OR\";" + linha);
                List<string> campos = linha2List(linha);
                int cols = 0;
                //
                if (count > 0)
                {
                    var row = sheet.CreateRow(count);
                    foreach (string s in campos)
                    {
                        //sheet.GetRow(count + 1).GetCell(cols).SetCellValue(s);
                        row.CreateCell(cols).SetCellValue(s);
                        //row.GetCell(cols).CellStyle = style1;
                        //ws.Cells[count, cols] = new Cell(s);
                        //ws.Cells[count, cols].Style = cs;

                        cols++;
                    }
                }
                count++;

            }


            //Linha complexa
            sheet = templateWorkbook.GetSheet("Saneamento");
            csvfile = csrv.TEMPDIR + "/" + _idemp.ToString() + "/" + _idos.ToString() + "/complex.1";

            count = 0;
            linha = "";
            //Encoding enc = Encoding.GetEncoding("ISO-8859-1");
            sr = new StreamReader(csvfile, enc);

            style1 = templateWorkbook.CreateCellStyle();

            style1.FillBackgroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillForegroundColor = HSSFColor.LEMON_CHIFFON.index;
            style1.FillPattern = FillPatternType.SOLID_FOREGROUND;


            while (sr.Peek() >= 0)
            {
                linha = sr.ReadLine();
                //cio.appendLine("\"OR\";" + linha);
                List<string> campos = linha2List(linha);
                int cols = 0;
                //
                if (count > 0)
                {
                    var row = sheet.CreateRow(count);
                    foreach (string s in campos)
                    {
                        //sheet.GetRow(count + 1).GetCell(cols).SetCellValue(s);
                        row.CreateCell(cols).SetCellValue(s);
                        //row.GetCell(cols).CellStyle = style1;
                        //ws.Cells[count, cols] = new Cell(s);
                        //ws.Cells[count, cols].Style = cs;

                        cols++;
                    }
                }
                count++;

            }

            //Resumo
            sheet = templateWorkbook.GetSheet("resumo");
            //sheet.CreateRow(8).CreateCell(3).SetCellValue("8 - ainda em teste");
            sheet.GetRow(7).GetCell(2).SetCellValue("8 - ainda em teste");
            

            templateWorkbook.Write(msResult);
            msResult.Close();
            //wb.Worksheets.Add(ws);
            //wb.Save(xlsfile);
            sr.DiscardBufferedData();
            sr.Dispose();
            sr = null;


        }


    }

    //public class linhaSimple
    //{
    //    public string TIPOVERIFICACAO { get; set; }
    //    public string CODIGO { get; set; }
    //    public string EMPRESA { get; set; }
    //    public string FILIAL { get; set; }
    //    public string CNPJ { get; set; }
    //    public string SITUACAOCNPJ { get; set; }
    //    public string IE { get; set; }
    //    public string SITUACAOIE { get; set; }
    //    public string RAZAO { get; set; }
    //    public string FANTASIA { get; set; }
    //    public string LOGRADOURO { get; set; }
    //    public string NUMERO { get; set; }
    //    public string COMPLEMENTO { get; set; }
    //    public string BAIRRO { get; set; }
    //    public string MUNICIPIO { get; set; }
    //    public string UF { get; set; }
    //    public string CEP { get; set; }
    //    public string IBGE { get; set; }
    //    public string CCM { get; set; }
    //    public string CNAE { get; set; }
    //    public string DESCRICNAE { get; set; }
    //    public string SUFRAMA { get; set; }
    //    public string RFDATAABERTURA { get; set; }
    //    public string RFCODIGONJ { get; set; }
    //    public string RFDESCRINJ { get; set; }
    //    public string RFTIPOEMPRESA { get; set; }
        
    //    public string SIREGIMEAPURACAO { get; set; }
    //    public string SIREGULARIDADEFISCAL { get; set; }
    //    public string SIEMAIL { get; set; }
    //    public string SIDATAINCULSAO { get; set; }



    //    public string ERROCOD { get; set; }
    //    public string ERRODESCRI { get; set; }

    //    public string RFDATACONSULTA { get; set; }
    //    public string RFDATASITUACAO { get; set; }
    //    public string RFDATASITUACAOESPECIAL{ get; set; }
    //    public string RFHORACONSULTA { get; set; }
    //    public string RFMOTIVOSITUACAO { get; set; }
    //    public string RFSITUACAOESPECIAL { get; set; }


    //    public string SIDATABAIXA { get; set; }
    //    public string SIDATACONSULTA { get; set; }
    //    public string SIMOTIVOBAIXA { get; set; }
    //    public string SINUMEROCONSULTA { get; set; }


    //    public string LINHA
    //    {
    //        get { 
    //            string ret = "";
    //            ret = ret + "\"" + TIPOVERIFICACAO + "\";";//0
    //            ret = ret + "\"" + CODIGO          + "\";";
    //            ret = ret + "\"" + EMPRESA         + "\";";
    //            ret = ret + "\"" + FILIAL          + "\";";
    //            ret = ret + "\"" + CNPJ            + "\";";
    //            ret = ret + "\"" + SITUACAOCNPJ    + "\";";//5
    //            ret = ret + "\"" + IE              + "\";";
    //            ret = ret + "\"" + SITUACAOIE      + "\";";
    //            ret = ret + "\"" + RAZAO           + "\";";
    //            ret = ret + "\"" + FANTASIA        + "\";";
    //            ret = ret + "\"" + LOGRADOURO      + "\";";//10
    //            ret = ret + "\"" + NUMERO          + "\";";
    //            ret = ret + "\"" + COMPLEMENTO     + "\";";
    //            ret = ret + "\"" + BAIRRO          + "\";";
    //            ret = ret + "\"" + MUNICIPIO       + "\";";
    //            ret = ret + "\"" + UF + "\";";//15
    //            ret = ret + "\"" + CEP + "\";";
    //            ret = ret + "\"" + IBGE + "\";";
    //            ret = ret + "\"" + CCM             + "\";";
    //            ret = ret + "\"" + CNAE + "\";";
    //            ret = ret + "\"" + DESCRICNAE + "\";";//20
    //            ret = ret + "\"" + SUFRAMA + "\";";
    //            ret = ret + "\"" + RFDATAABERTURA  + "\";";
    //            ret = ret + "\"" + RFCODIGONJ + "\";";
    //            ret = ret + "\"" + RFDESCRINJ+ "\";";
    //            ret = ret + "\"" + RFTIPOEMPRESA + "\";";//25

    //            ret = ret + "\"" + SIREGIMEAPURACAO + "\";";
    //            ret = ret + "\"" + SIREGULARIDADEFISCAL  + "\";";
    //            ret = ret + "\"" + SIEMAIL  + "\";";
    //            ret = ret + "\"" + SIDATAINCULSAO + "\";";

    //            ret = ret + "\"" + ERROCOD + "\";";//30
    //            ret = ret + "\"" + ERRODESCRI + "\";";

    //            ret = ret + "\"" + RFDATACONSULTA + "\";";
    //            ret = ret + "\"" + RFDATASITUACAO + "\";";
    //            ret = ret + "\"" + RFDATASITUACAOESPECIAL + "\";";
    //            ret = ret + "\"" + RFHORACONSULTA + "\";"; // 35
    //            ret = ret + "\"" + RFMOTIVOSITUACAO + "\";";
    //            ret = ret + "\"" + RFSITUACAOESPECIAL + "\";";

    //            ret = ret + "\"" + SIDATABAIXA + "\";";
    //            ret = ret + "\"" + SIDATACONSULTA + "\";";
    //            ret = ret + "\"" + SIMOTIVOBAIXA  + "\";";//40
    //            ret = ret + "\"" + SINUMEROCONSULTA + "\";";

    //            return ret;
    //        }
    //    }

    //    public string CABECALHO
    //    {
    //        get
    //        {
    //            string ret = "";
    //            ret = ret + "\"TIPOVERIFICACAO\";";
    //            ret = ret + "\"CODIGO\";";
    //            ret = ret + "\"EMPRESA\";";
    //            ret = ret + "\"FILIAL\";";
    //            ret = ret + "\"CNPJ\";";
    //            ret = ret + "\"SITUACAOCNPJ\";";
    //            ret = ret + "\"IE\";";
    //            ret = ret + "\"SITUACAOIE\";";
    //            ret = ret + "\"RAZAO\";";
    //            ret = ret + "\"FANTASIA\";";
    //            ret = ret + "\"LOGRADOURO\";";
    //            ret = ret + "\"NUMERO\";";
    //            ret = ret + "\"COMPLEMENTO\";";
    //            ret = ret + "\"BAIRRO\";";
    //            ret = ret + "\"MUNICIPIO\";";
    //            ret = ret + "\"UF\";";
    //            ret = ret + "\"CEP\";";
    //            ret = ret + "\"IBGE\";";
    //            ret = ret + "\"CCM\";";
    //            ret = ret + "\"CNAE\";";
    //            ret = ret + "\"DESCRICNAE\";";
    //            ret = ret + "\"SUFRAMA\";";
    //            ret = ret + "\"RFDATAABERTURA\";";
    //            ret = ret + "\"RFCODIGONJ\";";
    //            ret = ret + "\"RFDESCRINJ\";";
    //            ret = ret + "\"RFTIPOEMPRESA\";";

    //            ret = ret + "\"SIREGIMEAPURACAO\";";
    //            ret = ret + "\"SIREGULARIDADEFISCAL\";";
    //            ret = ret + "\"SIEMAIL\";";
    //            ret = ret + "\"SIDATAINCULSAO\";";

    //            ret = ret + "\"ERROCOD\";";
    //            ret = ret + "\"ERRODESCRI\";";

    //            ret = ret + "\"RFDATACONSULTA\";";
    //            ret = ret + "\"RFDATASITUACAO\";";
    //            ret = ret + "\"RFDATASITUACAOESPECIAL\";";
    //            ret = ret + "\"RFHORACONSULTA\";";
    //            ret = ret + "\"RFMOTIVOSITUACAO\";";
    //            ret = ret + "\"RFSITUACAOESPECIAL\";";

    //            ret = ret + "\"SIDATABAIXA\";";
    //            ret = ret + "\"SIDATACONSULTA\";";
    //            ret = ret + "\"SIMOTIVOBAIXA\";";
    //            ret = ret + "\"SINUMEROCONSULTA\";";

    //            return ret;
    //        }
    //    }

    //    public void autoCarga(List<string> campos)
    //    {
    //        TIPOVERIFICACAO = campos[0];
    //        CODIGO  = campos[1];
    //        EMPRESA  = campos[2];
    //        FILIAL  = campos[3];
    //        CNPJ  = campos[4];
    //        SITUACAOCNPJ  = campos[5];
    //        IE  = campos[6];
    //        SITUACAOIE  = campos[7];
    //        RAZAO  = campos[8];
    //        FANTASIA  = campos[9];
    //        LOGRADOURO  = campos[10];
    //        NUMERO  = campos[11];
    //        COMPLEMENTO  = campos[12];
    //        BAIRRO  = campos[13];
    //        MUNICIPIO  = campos[14];
    //        UF  = campos[15];
    //        CEP  = campos[16];
    //        IBGE  = campos[17];
    //        CCM  = campos[18];
    //        CNAE  = campos[19];
    //        DESCRICNAE  = campos[20];
    //        SUFRAMA  = campos[21];
    //        RFDATAABERTURA  = campos[22];
    //        RFCODIGONJ  = campos[23];
    //        RFDESCRINJ  = campos[24];
    //        RFTIPOEMPRESA  = campos[25];

    //        SIREGIMEAPURACAO  = campos[26];
    //        SIREGULARIDADEFISCAL  = campos[27];
    //        SIEMAIL  = campos[28];
    //        SIDATAINCULSAO  = campos[29];



    //        ERROCOD  = campos[30];
    //        ERRODESCRI = campos[31];

    //        RFDATACONSULTA = campos[32];
    //        RFDATASITUACAO = campos[33];
    //        RFDATASITUACAOESPECIAL = campos[34];
    //        RFHORACONSULTA = campos[35];
    //        RFMOTIVOSITUACAO = campos[36];
    //        RFSITUACAOESPECIAL = campos[37];

    //        SIDATABAIXA = campos[38];
    //        SIDATACONSULTA = campos[39];
    //        SIMOTIVOBAIXA = campos[40];
    //        SINUMEROCONSULTA = campos[41];
    //    }
    //}


    //public class linhaComplex
    //{ 
    //    public string CODIGO                {get;set;}
    //    public string EMPRESA               {get;set;}
    //    public string FILIAL                {get;set;}
    //    public string CNPJ                  {get;set;}
    //    public string RAZAO                 {get;set;}
    //    public string FANTASIA              {get;set;}
    //    public string LOGRADOURO            {get;set;}
    //    public string NUM                   {get;set;}
    //    public string COMPLEMENTO           {get;set;}
    //    public string BAIRRO                {get;set;}
    //    public string MUNICIPIO             {get;set;}
    //    public string UF                    {get;set;}
    //    public string CEP                   {get;set;}
    //    public string IE                    {get;set;}
    //    public string IBGE                  {get;set;}
    //    public string CCM                   {get;set;}
    //    public string CNAE                  {get;set;}
    //    public string SUFRAMA               {get;set;}

    //    public string CODIBGE               {get;set;}

    //    public string RFCNPJ                {get;set;}
    //    public string RFDATAABERTURA        {get;set;}
    //    public string RFRAZAOSOCIAL         {get;set;}
    //    public string RFNOMEFANTASIA        {get;set;}
    //    public string RFCODIGOAE            {get;set;}
    //    public string RFDESCRICAOAE         {get;set;}
    //    public string RFCODIGONJ            {get;set;}
    //    public string RFDESCRICAONJ         {get;set;}
    //    public string RFLOGRADOURO          {get;set;}
    //    public string RFNUMERO              {get;set;}
    //    public string RFCOMPLEMENTO         {get;set;}
    //    public string RFCEP                 {get;set;}
    //    public string RFBAIRRO              {get;set;}
    //    public string RFCIDADE              {get;set;}
    //    public string RFESTADO              {get;set;}
    //    public string RFSITUACAO            {get;set;}
    //    public string RFDATASITUACAO        {get;set;}
    //    public string RFSITUACAOESPECIAL    {get;set;}
    //    public string RFDATASITUACAOESPECIAL{get;set;}
    //    public string RFDATACONSULTA        {get;set;}
    //    public string RFHORACONSULTA        {get;set;}
    //    public string RFTIPOEMPRESA         {get;set;}
    //    public string RFMOTIVOSITUACAO      {get;set;}

    
    //    public string SICNPJ                {get;set;}
    //    public string SIIE                  {get;set;}
    //    public string SIRAZAOSOCIAL         {get;set;}
    //    public string SINOMEFANTASIA        {get;set;}
    //    public string SILOGRADOURO          {get;set;}
    //    public string SINUMERO              {get;set;}
    //    public string SICOMPLEMENTO         {get;set;}
    //    public string SIBAIRRO              {get;set;}
    //    public string SICIDADE              {get;set;}
    //    public string SIESTADO              {get;set;}
    //    public string SICEP                 {get;set;}
    //    public string SIEMAIL               {get;set;}
    //    public string SISITUACAO            {get;set;}
    //    public string SIDATAINCLUSAO        {get;set;}
    //    public string SIDATABAIXA           {get;set;}
    //    public string SIDATACONSULTA        {get;set;}
    //    public string SINUMEROCONSULTA      {get;set;}
    //    public string SIREGIMEAPURACAO      {get;set;}
    //    public string SIMOTIVOBAIXA         {get;set;}
    //    public string SIREGULARIDADEFISCAL  {get;set;}


    //    public string LINHA
    //    {
    //        get {
    //            string ret = "";

    //            ret = ret + "\"" + CODIGO                  + "\";";
    //            ret = ret + "\"" + EMPRESA                 + "\";";
    //            ret = ret + "\"" + FILIAL                  + "\";";
    //            ret = ret + "\"" + CNPJ                    + "\";";
    //            ret = ret + "\"" + RAZAO                   + "\";";
    //            ret = ret + "\"" + FANTASIA                + "\";";
    //            ret = ret + "\"" + LOGRADOURO              + "\";";
    //            ret = ret + "\"" + NUM                     + "\";";
    //            ret = ret + "\"" + COMPLEMENTO             + "\";";
    //            ret = ret + "\"" + BAIRRO                  + "\";";
    //            ret = ret + "\"" + MUNICIPIO               + "\";";
    //            ret = ret + "\"" + UF                      + "\";";
    //            ret = ret + "\"" + CEP                     + "\";";
    //            ret = ret + "\"" + IE                      + "\";";
    //            ret = ret + "\"" + IBGE                    + "\";";
    //            ret = ret + "\"" + CCM                     + "\";";
    //            ret = ret + "\"" + CNAE                    + "\";";
    //            ret = ret + "\"" + SUFRAMA                 + "\";";

    //            ret = ret + "\"" + CODIBGE                 + "\";";

    //            ret = ret + "\"" + RFCNPJ                  + "\";";
    //            ret = ret + "\"" + RFDATAABERTURA          + "\";";
    //            ret = ret + "\"" + RFRAZAOSOCIAL           + "\";";
    //            ret = ret + "\"" + RFNOMEFANTASIA          + "\";";
    //            ret = ret + "\"" + RFCODIGOAE              + "\";";
    //            ret = ret + "\"" + RFDESCRICAOAE           + "\";";
    //            ret = ret + "\"" + RFCODIGONJ              + "\";";
    //            ret = ret + "\"" + RFDESCRICAONJ           + "\";";
    //            ret = ret + "\"" + RFLOGRADOURO            + "\";";
    //            ret = ret + "\"" + RFNUMERO                + "\";";
    //            ret = ret + "\"" + RFCOMPLEMENTO           + "\";";
    //            ret = ret + "\"" + RFCEP                   + "\";";
    //            ret = ret + "\"" + RFBAIRRO                + "\";";
    //            ret = ret + "\"" + RFCIDADE                + "\";";
    //            ret = ret + "\"" + RFESTADO                + "\";";
    //            ret = ret + "\"" + RFSITUACAO              + "\";";
    //            ret = ret + "\"" + RFDATASITUACAO          + "\";";
    //            ret = ret + "\"" + RFSITUACAOESPECIAL      + "\";";
    //            ret = ret + "\"" + RFDATASITUACAOESPECIAL  + "\";";
    //            ret = ret + "\"" + RFDATACONSULTA          + "\";";
    //            ret = ret + "\"" + RFHORACONSULTA          + "\";";
    //            ret = ret + "\"" + RFTIPOEMPRESA           + "\";";
    //            ret = ret + "\"" + RFMOTIVOSITUACAO        + "\";";


    //            ret = ret + "\"" + SICNPJ                  + "\";";
    //            ret = ret + "\"" + SIIE                    + "\";";
    //            ret = ret + "\"" + SIRAZAOSOCIAL           + "\";";
    //            ret = ret + "\"" + SINOMEFANTASIA          + "\";";
    //            ret = ret + "\"" + SILOGRADOURO            + "\";";
    //            ret = ret + "\"" + SINUMERO                + "\";";
    //            ret = ret + "\"" + SICOMPLEMENTO           + "\";";
    //            ret = ret + "\"" + SIBAIRRO                + "\";";
    //            ret = ret + "\"" + SICIDADE                + "\";";
    //            ret = ret + "\"" + SIESTADO                + "\";";
    //            ret = ret + "\"" + SICEP                   + "\";";
    //            ret = ret + "\"" + SIEMAIL                 + "\";";
    //            ret = ret + "\"" + SISITUACAO              + "\";";
    //            ret = ret + "\"" + SIDATAINCLUSAO          + "\";";
    //            ret = ret + "\"" + SIDATABAIXA             + "\";";
    //            ret = ret + "\"" + SIDATACONSULTA          + "\";";
    //            ret = ret + "\"" + SINUMEROCONSULTA        + "\";";
    //            ret = ret + "\"" + SIREGIMEAPURACAO        + "\";";
    //            ret = ret + "\"" + SIMOTIVOBAIXA           + "\";";
    //            ret = ret + "\"" + SIREGULARIDADEFISCAL    + "\";";
  

    //            return ret;
    //        }
    //    }

    //    public string CABECALHO
    //    {
    //        get {
    //            string ret = "";
    //            ret = ret + "\"CODIGO\";";
    //            ret = ret + "\"EMPRESA\";";
    //            ret = ret + "\"FILIAL\";";
    //            ret = ret + "\"CNPJ\";";
    //            ret = ret + "\"RAZAO\";";
    //            ret = ret + "\"FANTASIA\";";
    //            ret = ret + "\"LOGRADOURO\";";
    //            ret = ret + "\"NUM\";";
    //            ret = ret + "\"COMPLEMENTO\";";
    //            ret = ret + "\"BAIRRO\";";
    //            ret = ret + "\"MUNICIPIO\";";
    //            ret = ret + "\"UF\";";
    //            ret = ret + "\"CEP\";";
    //            ret = ret + "\"IE\";";
    //            ret = ret + "\"IBGE\";";
    //            ret = ret + "\"CCM\";";
    //            ret = ret + "\"CNAE\";";
    //            ret = ret + "\"SUFRAMA\";";

    //            ret = ret + "\"CODIBGE\";";

    //            ret = ret + "\"RFCNPJ\";";
    //            ret = ret + "\"RFDATAABERTURA\";";
    //            ret = ret + "\"RFRAZAOSOCIAL\";";
    //            ret = ret + "\"RFNOMEFANTASIA\";";
    //            ret = ret + "\"RFCODIGOAE\";";
    //            ret = ret + "\"RFDESCRICAOAE\";";
    //            ret = ret + "\"RFCODIGONJ\";";
    //            ret = ret + "\"RFDESCRICAONJ\";";
    //            ret = ret + "\"RFLOGRADOURO\";";
    //            ret = ret + "\"RFNUMERO\";";
    //            ret = ret + "\"RFCOMPLEMENTO\";";
    //            ret = ret + "\"RFCEP\";";
    //            ret = ret + "\"RFBAIRRO\";";
    //            ret = ret + "\"RFCIDADE\";";
    //            ret = ret + "\"RFESTADO\";";
    //            ret = ret + "\"RFSITUACAO\";";
    //            ret = ret + "\"RFDATASITUACAO\";";
    //            ret = ret + "\"RFSITUACAOESPECIAL\";";
    //            ret = ret + "\"RFDATASITUACAOESPECIAL\";";
    //            ret = ret + "\"RFDATACONSULTA\";";
    //            ret = ret + "\"RFHORACONSULTA\";";
    //            ret = ret + "\"RFTIPOEMPRESA\";";
    //            ret = ret + "\"RFMOTIVOSITUACAO\";";


    //            ret = ret + "\"SICNPJ\";";
    //            ret = ret + "\"SIIE\";";
    //            ret = ret + "\"SIRAZAOSOCIAL\";";
    //            ret = ret + "\"SINOMEFANTASIA\";";
    //            ret = ret + "\"SILOGRADOURO\";";
    //            ret = ret + "\"SINUMERO\";";
    //            ret = ret + "\"SICOMPLEMENTO\";";
    //            ret = ret + "\"SIBAIRRO\";";
    //            ret = ret + "\"SICIDADE\";";
    //            ret = ret + "\"SIESTADO\";";
    //            ret = ret + "\"SICEP\";";
    //            ret = ret + "\"SIEMAIL\";";
    //            ret = ret + "\"SISITUACAO\";";
    //            ret = ret + "\"SIDATAINCLUSAO\";";
    //            ret = ret + "\"SIDATABAIXA\";";
    //            ret = ret + "\"SIDATACONSULTA\";";
    //            ret = ret + "\"SINUMEROCONSULTA\";";
    //            ret = ret + "\"SIREGIMEAPURACAO\";";
    //            ret = ret + "\"SIMOTIVOBAIXA\";";
    //            ret = ret + "\"SIREGULARIDADEFISCAL\";";

    //            return ret;
    //        }
    //    }
    //}

}



/*
 "CODIGO";
"EMPRESA";
"FILIAL";
"CNPJ";
"RAZAO";
"FANTASIA";
"LOGRADOURO";
"NUM";
"COMPLEMENTO";
"BAIRRO";
"MUNICIPIO";
"UF";
"CEP";
"IE";
"IBGE";
"CCM";
"CNAE";
"SUFRAMA";

"CODIBGE";

"RFCNPJ";
"RFDATAABERTURA";
"RFRAZAOSOCIAL";
"RFNOMEFANTASIA";
"RFCODIGOAE";
"RFDESCRICAOAE";
"RFCODIGONJ";
"RFDESCRICAONJ";
"RFLOGRADOURO";
"RFNUMERO";
"RFCOMPLEMENTO";
"RFCEP";
"RFBAIRRO";
"RFCIDADE";
"RFESTADO";
"RFSITUACAO";
"RFDATASITUACAO";
"RFSITUACAOESPECIAL";
"RFDATASITUACAOESPECIAL";
"RFDATACONSULTA";
"RFHORACONSULTA";
"RFTIPOEMPRESA";
"RFMOTIVOSITUACAO";


"SICNPJ";
"SIIE";
"SIRAZAOSOCIAL";
"SINOMEFANTASIA";
"SILOGRADOURO";
"SINUMERO";
"SICOMPLEMENTO";
"SIBAIRRO";
"SICIDADE";
"SIESTADO";
"SICEP";
"SIEMAIL";
"SISITUACAO";
"SIDATAINCLUSAO";
"SIDATABAIXA";
"SIDATACONSULTA";
"SINUMEROCONSULTA";
"SIREGIMEAPURACAO";
"SIMOTIVOBAIXA";
"SIREGULARIDADEFISCAL";
 
 */
